package com.hzc.service;

import com.hzc.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author flowerWorm
 * @createTime 2022年05月21日 21:34:00
 * 首先明确这个注解是为SQL语句中参数赋值而服务的。
 *
 * @Param的作用就是给参数命名，比如在mapper里面某方法A（int id），当添加注解后A（@Param("userId") int id），
 * 也就是说外部想要取出传入的id值，只需要取它的参数名userId就可以了。将参数值传如SQL语句中，通过#{userId}进行取值给SQL的参数赋值。
 *  当使用了@Param注解来声明参数的时候，SQL语句取值使用#{}，${}取值都可以。
 *  当不使用@Param注解声明参数的时候，必须使用的是#{}来取参数。使用${}方式取值会报错。
 *  当不使用@Param注解时，参数只能有一个，并且是Javabean。在SQL语句里可以引用JavaBean的属性，而且只能引用JavaBean的属性。
 */
public interface UserService {

    /**
     * url	/user/selectUserPage?userName=z&userSex=男&page=null
     */
    List<User> selectUserPage(String userName, String userSex, int startRow);

    /**
     * url	/user/createUser(参数见下面)
     */
    int createUser(User user);

    /**
     * url	/user/ deleteUserById?userId= 15968162087363060
     */
    int deleteUserById(String userId);

    /**
     * url	/user/getRowCount?userName=z&userSex=男
     */
    int getRowCount(String userName, String userSex);

}
